<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // console.log(1)
        // setTimeout(() => {
        //     console.log(2)
        // }, 2000)
        // setTimeout(() => {
        //     console.log(3)
        // }, 1000)
        // console.log(4)
        // 1432
        /*---------------------  ---------------------*/
        // console.log(1)
        // setTimeout(() => {
        //     console.log(2)
        // })
        // setTimeout(() => {
        //     console.log(3)
        // })
        // console.log(4)
        // 1423
        /*---------------------  ---------------------*/
        // setTimeout(function () {
        //     console.log(1)
        // })
        // new Promise(function (resolve, reject) {
        //     console.log(2)
        //     resolve(3)
        // }).then(function (val) {
        //     console.log(val)
        // })
        // console.log(4)
        // 2431
        // 事件循环（eventloop）:
        // 1、主线程上面的同步代码，
        // 2、取出微任务列表里面所有的微任务，全部执行
        // 3、取出宏任务队列里面的一个宏任务，执行
        // 4、继续执行第2步
        // 5、继续执行第3步
        // 6、继续执行第2步
        // 7、继续执行第3步
        /*---------------------  ---------------------*/
        console.log(1)
        setTimeout(function () {
            console.log(2)
            new Promise(function (resolve) {
                console.log(3)
                resolve()
            }).then(function () {
                console.log(4)
            })
        })

        const p = new Promise((resolve, reject) => {
            console.log(5)
            resolve() // 标记为成功
            console.log(6)
        })

        p.then(data => {
            console.log(7)
        })

        console.log(8)
        // 15687234
    </script>
</body>

</html>